﻿// 903 字符串排序.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

/*
http://oj.daimayuan.top/course/7/problem/539

给你 n个两两不同的字符串，请按字典序从小到大的顺序将这些字符串排好，再按顺序输出。

把字符串按字典序排序是指以字符串的第 i个字符作为第 i关键字进行的排序，空字符小于字符集内任何字符。

输入格式
第一行一个整数 n，代表字符串个数。

接下来 n行，每行一个字符串。

输出格式
输出共 n行，表示将读入的字符串按字典序从小到大的顺序输出的结果。

样例输入
4
abcd
cdf
abc
bbc
样例输出
abc
abcd
bbc
cdf
数据规模
对于所有数据，保证 1≤n≤50000,1≤字符串长度≤10，字符串均由小写字母构成。
*/

//尝试 trie树的遍历 


const int N = 50010;
string ss[N];
int n;

int main()
{
	cin >> n;
	for (int i = 0; i < n; i++) { cin >> ss[i]; }
	sort(ss, ss + n);

	for (int i = 0; i < n; i++) {
		cout << ss[i] << endl;
	}
}
 